Tree-structured documents are often used to share data because they are easily parseable by a computer and yet are still human-readable. One type of tree-structured document is JSON. Web browsers can store and retrieve objects in JavaScript object notation (JSON), and some web servers provide a JSON interface to web clients. Furthermore mobile applications have adopted JSON as a choice for data exchange, and many programming libraries are available for middleware to handle JSON. Some web services put data in flat files or relational tables, and some put data into distributed key-value stores. The web server then deconstructs the JSON objects and generates commands to update storage as appropriate for the selected system, or generate commands to retrieve data and reconstruct the JSON objects.
Relational modeling is used by many systems. Representing a problem as tables of rows of columns, where some cells are references to rows in other tables, is used for querying data from different points of view. Relational operators for filtering, joining and aggregating data afford the programmer a means to write queries at a high level without over-prescribing mechanisms for segmenting, indexing and caching the data.
One system that can be used for relational modeling is a SQL database. Relational concepts can also be applied to files of records or files of comma separated values (CSV). Tuples can also be stored in a key-value store.